<?php namespace App\Repositories\Money;

interface MoneyRepositoryInterface
{
    /**
     * 记录用户消费信息账单
     *
     * @param        $user_id
     * @param        $order_id
     * @param        $money
     * @param string $remark
     *
     * @return bool
     */
    public function storeUserPayOrder($user_id, $order_id, $money, $remark = '');

    /**
     * 记录发布信息收入账单
     *
     * @param        $user_id
     * @param        $order_id
     * @param        $money
     * @param string $remark
     *
     * @return bool
     */
    public function storeFromPublish($user_id, $order_id, $money, $remark = '');

    /**
     * 提现记录
     *
     * @param $user_id
     * @param $withdraw_id
     * @param $money
     * @param $remark
     *
     * @return MoneyFlow
     */
    public function storeWithdraw($user_id, $withdraw_id, $money, $remark = '');

    /**
     * 邀请发布者
     *
     * @param $user_id
     * @param $withdraw_id
     * @param $money
     * @param $remark
     *
     * @return MoneyFlow
     */
    public function storeInvitePublisher($user_id, $order_id, $money, $remark = '');

    /**
     * 邀请用户
     *
     * @param $user_id
     * @param $withdraw_id
     * @param $money
     * @param $remark
     *
     * @return MoneyFlow
     */
    public function storeInviteUser($user_id, $order_id, $money, $remark = '');

    /**
     * 平台获取发布信息订单佣金
     *
     * @param        $order_id
     * @param        $money
     * @param string $remark
     *
     * @return MoneyFlow
     */
    public function storePlatformPublishCommission($order_id, $money, $remark = '');

    /**
     * 平台给邀请用户的人发放佣金
     *
     * @param        $order_id
     * @param        $money
     * @param string $remark
     *
     * @return MoneyFlow
     */
    public function storePlatformInviteUserCommission($order_id, $money, $remark = '');

    /**
     * 平台给邀请发布者的人发放佣金
     *
     * @param        $order_id
     * @param        $money
     * @param string $remark
     *
     * @return MoneyFlow
     */
    public function storePlatformInvitePublisherCommission($order_id, $money, $remark = '');
}
